<?php
/**
 * <https://y.st./>
 * Copyright © 2019 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'Inability to follow instructions',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2019/08/05.jpg" alt="Small, yellow flowers beside the path" class="framed-centred-image" width="800" height="480"/>
<section id="diet">
	<h2>Dietary intake</h2>
	<p>
		For breakfast, I had 75 grams of cereal and 50 grams of soy milk.
		For lunch, I had a protein shake.
		For dinner, I had a pickle, veggie patty, and tapioca cheese sandwich.
	</p>
</section>
<section id="drudgery">
	<h2>Drudgery</h2>
	<p>
		Instead of adding new and necessary functionality to my project, I mostly worked on cleaning up the mess I made of my code yesterday.
		I basically threw things together trying to make them work, and work they did, but all the while I was thinking of better ways to structure the code to do the same thing.
		Throwing the code together was definitely the right choice, and let me try several potential solutions, only needing to actually put effort in today to clean up the solution I went with, and not also every failed solution I tried.
		I also implemented calculation of the <var>z</var> coordinates, which while necessary, wasn&apos;t one of the more-complex things I&apos;m going to have to do.
		We&apos;re supposed to make a cone, with <var>x</var> and <var>y</var> centred on zero, so I just took the square root of the sum of the other two individually squared.
		With <code>THREE.CameraControls()</code> currently broken, and not having yet built my replacement code, I can&apos;t see the shape from the angle I need to to properly assess what it looks like, but from head-on, it didn&apos;t look enough like a cone, so I multiplied that value by two, then subtracted one to set the shape back toward the origin, seeing as all of its values had been positive after squaring.
		Odds are, I&apos;ll have to change some of this once I have a changeable camera angle.
		From this angle though, it looks plenty pointy, and I think from the side, it&apos;ll be easily recognisable as a cone.
	</p>
	<p>
		My discussion posts for the day:
	</p>
	<blockquote>
		<p>
			I&apos;ve tried passing in that function as-is even, and it breaks the rendering on my side.
			If I call the <code>THREE.ParametricGeometry()</code> constructor, using a built-in function or my own, the script halts.
			For example, if I run <code>var geometry = new THREE.ParametricGeometry(THREE.ParametricGeometries.klein, 25, 25);</code>, the script halts and no code after that call gets run.
			Instead, I&apos;ve had to define a grid of points in the places we need them (from negative one to one in one-tenth increments, creating a twenty-one by twenty-one point grid), hen define the <var>z</var> coordinate mathematically based on the <code>x</code> and <code>y</code> coordinates.
		</p>
		<p>
			As for having a hard time finding what we need in the manual, the funny thing is that this week, I&apos;ve found enough in the manual to know exactly what to do, but actually doing it doesn&apos;t seem to work.
			It&apos;s not just confusion about what to do though, as like I said, code that was running two weeks ago just fine isn&apos;t running now.
			I have verbatim copies of my past assignments, all of which used to render, and now none of them (aside from last week&apos;s assignment, in which I didn&apos;t use <code>THREE.OrbitControls()</code>) are working.
			<code>THREE.OrbitControls()</code> no longer works for some reason, even in code that it used to, and breaks scripts that call it.
			<code>THREE.ParametricGeometry()</code> appears to be suffering from the same breakage, though as I didn&apos;t use this function two weeks ago, and have only tried to use it this week, I guess I can&apos;t say for sure that it is in fact the same breakage.
		</p>
	</blockquote>
	<blockquote>
		<p>
			I couldn&apos;t help but notice that both of your example images are two-dimensional.
			Correct me if I&apos;m wrong, but Bézier splines only work in two dimensions, right?
			For three-dimensional objects, we have to instead use faces, which are always flat.
			We don&apos;t have a way to create a curved surface.
			It&apos;s interesting to see what we can do with curves on flat images though.
		</p>
		<p>
			I also noticed that the curve doesn&apos;t pass through the control points.
			That makes it harder to define exactly where you want your line, but it probably results in a smoother, less-jagged curve.
		</p>
	</blockquote>
</section>
<section id="Minetest">
	<h2>Minetest</h2>
	<img src="/img/CC_BY-SA_3.0/minetest.net./weblog/2019/08/05.png" alt="An alchemic sapling prototype and an alchemic sand prototype" class="framed-centred-image" width="1024" height="600"/>
	<p>
		As fun as it would be to start with the advanced stuff and build the simple stuff later, I feel like having <code>alchemy</code> be a rock-solid mod requires doing the reverse.
		I&apos;ve got to start with the basic ingredients and work my way up through what you can build with them.
		To begin with, I need to define the six alchemic hybrids, before I worry about things such as the new eighteen chest types or the fifteen new torch types.
		As I said yesterday, I&apos;m going to be relying heavily on palettes, so I&apos;ve mainly got to come up with basic designs that can be coloured.
		I&apos;ve got a basic order of precedence as far as what a mix will create.
		First, if one or more of the ingredient elements grows (seeds, saplings, spores), the resultant item will be a node that grows.
		Second, if one of the ingredient elements is a node, the resultant item will be a node that takes on texture characteristics mainly form the node or nodes that were used to make it.
		Finally, if neither ingredient is a node, the resultant item won&apos;t be a node either, and will have a custom texture instead of dealing with palettes, as I&apos;m pretty sure there&apos;s no item definition limit, just a node-definition limit.
	</p>
	<p>
		With that order in mind, I&apos;ve mainly got three textures to come up with.
		First, I&apos;ll need a sapling texture for the three new saplings.
		Next, I&apos;ll need a sand texture for coal-sand and iron-sand.
		And finally, I&apos;ll need a texture for coal-iron.
		I started by building a prototype for the sapling and the sand.
		I think the sampling came out well, except that it&apos;s not yet been worked to accept a palette colour nicely.
		For now, it&apos;s a full-colour texture that just is what it is.
		I don&apos;t think the sand came out all that great.
		I might be able to fix it, or I might be stuck with a mess.
		Drawing sand is difficult.
		Later, I need to convert the sapling textures to greyscale and work the sand and sapling to work well with whatever colours might get used with them.
		I&apos;ve sort of created a placeholder texture of coal-iron for now, and was tentatively calling the hybrid &quot;brightium&quot;, but as I wrote this, I came up with a better name: &quot;luminium&quot;.
		I&apos;m thinking that it&apos;ll likely be a luminous metal, taking its light-giving properties from coal&apos;s only node form in 0.4.0, the torch.
		That said, due to use of palettes, I can&apos;t really have a light-giving metal block without having two hundred fifty-six light-giving metal blocks, so if I keep that name, I still won&apos;t provide glowing blocks of the stuff.
		I&apos;ve started the textures for the tree trunk too, and on the cross section, you can see two spirals intertwined instead of the standard rings.
		I was initially going to have a single spiral for the cross section, just because it&apos;d be a little different than the standard logs and add something of interest, but decided two spirals could symbolise the melding of two elements.
	</p>
	<p>
		I think I&apos;ll assign special properties only to items that can&apos;t be crafted further.
		For example, the various logs won&apos;t do anything, because they can be crafted into planks, but the torches, chests, and things like that will.
		Maybe some end-of-the-line items won&apos;t though.
		I mean, what would I have ladders even do besides be climbable, for example?
		And I don&apos;t think I can make carts react differently to different rails based on their palette index.
		Working my way up from the bottom, I think my next step is to define the logs and the liminium ingot.
		The logs should take priority, but the liminium ingot would probably be easier.
	</p>
	<p>
		I&apos;m debating back and forth about how I want to assign palette indexes.
		I could assign them in an order strictly on when they get added to the mod.
		That seems like the most understandable order.
		Or I could hold off on assigning index zero, always reserving it for some white variant that will hopefully come along later.
		That would give better results in the creative mode inventory.
	</p>
	<p>
		I&apos;ve worked out how levels fit into the main <code>alchemy</code> system.
		I was having trouble, as the way I&apos;d done it before required a huge number of flags as players could unlock alchemic recipes in any order, and I don&apos;t want to store so many flags.
		It seems like it would needlessly bog down the game.
		I&apos;ve decided though that recipes will be unlocked in a single order, automatically, and based on your current level.
		To begin with, it&apos;ll take sixty-six levels per recipe to unlock these, based on the fact that you can reach level 396 using only the elements in Minetest Game 0.4.0 and there are six recipes based on those elements.Evenly dividing that gives us a requirement of sixty-six levels each.
		The number of recipes grows linearly as the number of possible levels grows exponentially, not to mention that the number of possible levels shrinks at times, so by the time I get to modern Minetest Game, it&apos;ll take about five levels to unlock each recipe.
		Players will find that much more accessible, and probably more reasonable.
	</p>
	<p>
		I&apos;ve started planning out the order of when recipes will become unlocked.
		Recipes using older items will always be unlocked soonest, unless those items no loner exist in the game, in which case they&apos;ll come last and sort of be esoteric recipes that you can learn after you&apos;ve progressed in the game a lot, but also only if some mod adds those ingredients back in.
		So far, the only elements that fit that bill are the two spore types.
		Other elements have been removed as elements, but left in as obtainable items, so their recipes will still be valid in the modern game.
		The idea though is that older elements have been known about longer, so more people know how use them.
		Esoteric recipes get moved to the end because they deal with forgotten knowledge that not many have any more, but also because gameplay-wise, these recipes practically don&apos;t exist, and you don&apos;t want an odd gap in which no recipes are being earned.
		As for ordering within each set of new recipes, I&apos;m placing them in such a way that you should be able to max out your levels gained from renewable elements, gaining a recipe for one way to make a non-renewable element renewable by the end of that, then get another by the time you max that amount of levels out, et cetera.
		For example, we&apos;ve got four elements to start with.
		There are six recipes.
		That means two-thirds of the way through maxing out one element&apos;s levels, you get your first recipe.
		There&apos;s only one renewable element, so that recipe <strong>*must*</strong> renew one of the other elements.
		The second recipe gained is one third of the way into the second element&apos;s levels, so it needs to not renew an element, then the third will be at the end of the second element&apos;s levels, and will need to provide a way to renew another element, and so on.
		Of course, you don&apos;t need to actually grind one element at a time, and these points only define where I need to put the recipes, not how a player needs to play.
		The theory is that you should be able to reach the maximum level, but that I don&apos;t want to add renewability all willy-nilly.
		It must be earned.
		And the recipes for adding renewability will be granted at the last possible point that they can.
		With that in mine, I need to have players earn a sapling recipe, a material recipe, then sapling, sapling, material, and material, in that order.
		But which saplings and which materials in what order?
		The iron sapling obviously will come fourth.
		It&apos;s the last point in which a sapling recipe is gained, and it&apos;s adds renewability for the most versatile and important of the elements.
		Well, it might not be as versatile as wood, but wood is already renewable.
		First though, what sapling, sandwood or coalwood?
		Sand, as an element, seems like the lesser element by far, considering how it vaporises for no good reason, so it should be renewed first.
		But it&apos;s also more versatile than coal, not to mention that I&apos;ve already come up with some chest effects for it that&apos;ll make it a valuable hybrid to have.
		For the second recipe, I&apos;ll likely choose coal-sand, but what about for the fifth and sixth?
		Iron-sand seems like the most versatile candidate.
		You get more options with that hybrid unlocked.
		Luminium though, the iron-coal hybrid, seems like it might offer really good tools or something though, and while I would never waste my iron on something so temporary as tools, I think other players likely will think this something worth earning.
	</p>
	<p>
		As a side note, I might call the mod <code>alchemy2</code>.
		If you know me, you know that&apos;s not because this is the second attempt at alchemy.
		That would be <code>alchemy1</code>, because the first would have been <code>alchemy0</code>.
		However, back before I saw the enormity of the project last time, I&apos;d considered having different levels of alchemy.
		<code>alchemy2</code> would define two-item mixes.
		<code>alchemy3</code> would define three-item mixes, and so on.
		So if I do go with that name, let the record show that as far back as now, I was already considering this, and not for the obvious reason most people would.
		Actually, I just <code>grep</code>ed my journal, too.
		It says I mentioned this <strong>*and*</strong> the reasoning behind <a href="/en/weblog/2018/07-July/22.xhtml#Minetest">over a year ago</a>.
		So yeah.
		It&apos;s not the second.
		It&apos;s just two-item alchemy.
	</p>
</section>
<section id="promotion">
	<h2>A promotion?</h2>
	<p>
		The head manager was getting on my case about my mannerisms today.
		Like, not in spiteful or malicious way; they&apos;re just trying to change my demeanour.
		They don&apos;t want me to ask for stuff.
		They want me to be bossy, and give orders.
		They specifically told me not to ask people to do anything, but to instead instruct them to do it.
		If you give me instructions like that, I think nothing of it.
		It&apos;s the same as asking me to do things.
		As such, I&apos;m perfectly fine with instructing others in such a way.
		I just need to get used to it, as I&apos;m not at all like that normally.
		I guess part of that is that I&apos;ve been specifically trained <strong>*not*</strong> to assert any sort of need by people such as Summer.
		It is a shortcoming that has been drilled into me, and it&apos;s a shortcoming that will take time and practice for me to overcome.
		However, it got me thinking.
		I was told that certain shift leaders changed and became more bossy when they became shift leaders because the power got to them.
		Except ... I never noticed any actual change in these people.
		Maybe this is what was going on.
		Someone was picking up on the things the head manager was having them change about themself.
		And I don&apos;t think it&apos;s the sort of thing you&apos;d normally &quot;turn off&quot; outside of work because it&apos;s no big deal, so it would have seeped into their off-the-clock relationships with these employees as well.
		I don&apos;t know.
		Mostly, these were just some passing thoughts I had today, and wanted to jot down.
	</p>
	<p>
		I got paired with the person that owes me \$1050 $a[USD].
		Just about everyone seems to find them obnoxious except me.
		Except today, they were my problem.
		I&apos;ve understood why they&apos;re disliked as a worker for a while now.
		They question instructions and do exactly what they&apos;re told not to do.
		And they have such an attitude about it!
		Like, you&apos;ll specifically tell them not to do something, then they&apos;ll do it and say &quot;you&apos;re welcome&quot;!
		But people also don&apos;t like them as a person.
		And I don&apos;t headbutt with them like that, so I haven&apos;t minded working with them.
		Except today, I was instructed to take charge of them, and now their inability to follow directions was my problem.
		Normally, I let them do whatever and I pick up the things they aren&apos;t doing.
		We&apos;re a team, though they sort of tack charge, and we get the work done.
		I wouldn&apos;t call them dominant by any means.
		But I&apos;m so hugely submissive that anyone is dominant by comparison when paired with me.
		But today, I wasn&apos;t allowed to let that happen, and they were their usual self, unable to simply do as asked.
		I think anyone else in the entire store would have just done as they were told.
		At least the people I&apos;ve worked with would have.
		But this workmate has always had a bit of a problem with being told what to do, or at least has had one since starting up here.
		It was a real test of my patience and a test of my skills as a leader and instructor.
		The head manager told me I did well.
		I disagree.
		I wasn&apos;t assertive, and I often let them trample all over me.
		I need more practice at this.
	</p>
</section>
END
);
